package com.jiazaibendi.lottery.service;

import java.util.List;

/**
 * description
 * 奖池服务类
 * @author echo_kai
 * @version 1.0
 * @date 2021/08/07
 */
public interface PrizePoolService {

    /**
     *description
     * 向红包池添加口令
     * @param schemeId
     * @param prizeId
     * @param code
     * @return void
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    void addCodeToEnvelopePool(long schemeId, long prizeId, List<String> code);

    /**
     *description
     * 从红包池取出口令
     * @param schemeId
     * @param prizeId
     * @return java.lang.String
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    String getACodeFromEnvelopePool(long schemeId, long prizeId);

    /**
     *description
     * 从奖池拿出一个奖品
     * @param schemeId
     * @return long
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    long getPrizeIdFromPrizePool(long schemeId);

    /**
     *description
     * 获取奖池剩余奖品数量
     * @param schemeId
     * @return long
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    long getPoolPrizeNumber(long schemeId);

    /**
     *description
     * 向奖池批量添加奖品
     * @param schemeId
     * @param prizeIds
     * @return void
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    void addPrizeToPrizePool(long schemeId, List<Long> prizeIds);

    /**
     *description
     * 获取奖池所有奖品
     * @param schemeId
     * @return java.util.List<java.lang.Long>
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    List<Long> queryAllPrizeOfPrizePool(long schemeId);

    /**
     *description
     * 清空奖池
     * @param schemeId
     * @return void
     * @author echo_kai
     * @date 2021/8/7
     * @version 1.0
     */
    void clearPrizePool(long schemeId);

}
